home *** CD-ROM | disk | FTP | other *** search
- # CVS $Id: optmenu2.tcl,v 1.3 1995/02/03 16:55:07 zibi Exp $
-
- #
- # Test program for dynamic option menus
- #
- global mediaMenu densityMenu
- global m_but0 m_but1 m_but2
- global d_but0 d_but1 d_but2 d_but3 d_but4 d_but5
- global numDensityButtons
-
- proc quitCB {cbs} {
- VtClose
- exit 0
- }
-
-
- proc mediaCB {cbs} {
- global mediaMenu densityMenu
- global m_but0 m_but1 m_but2
-
- set selectedWidget [VtGetValues $mediaMenu -selectedWidget]
-
- #floppy
- if {$selectedWidget == $m_but0} {
- ChangeDensityMenu {1440K 720K 100K}
- }
-
- #tape
- if {$selectedWidget == $m_but1} {
- ChangeDensityMenu {600MB 1000MB}
- }
-
- #harddisk
- if {$selectedWidget == $m_but2} {
- ChangeDensityMenu {10MB 20MB 30MB 40MB}
- }
- }
-
- proc ChangeDensityMenu {pb} {
- global densityMenu
- global d_but0 d_but1 d_but2 d_but3 d_but4 d_but5
- global numDensityButtons
-
- VtSetValues $densityMenu -selectedWidget $d_but0
-
- #
- # How many buttons are there?
- set numButtons [llength $pb]
-
- #
- # if the same replace labels
- if {$numButtons == $numDensityButtons} {
- set i 0
- foreach buttonLabel $pb {
- VtSetValues [set d_but$i] -label [lindex $pb $i]
- VtShow [set d_but$i]
- incr i
- }
- }
-
- #
- # if less
- # replace labels,
- # unmanage remaining widgets
- if {$numButtons < $numDensityButtons} {
- set i 0
- foreach buttonLabel $pb {
- VtSetValues [set d_but$i] -label [lindex $pb $i]
- VtShow [set d_but$i]
- incr i
- }
- while {$i < $numDensityButtons} {
- VtHide [set d_but$i]
- incr i
- }
- }
-
- # if more
- # replace labels
- # add more buttons
- if {$numButtons > $numDensityButtons} {
- set i 0
- foreach buttonLabel $pb {
- if {$i < $numDensityButtons} {
- VtSetValues [set d_but$i] -label [lindex $pb $i]
- VtShow [set d_but$i]
- } else {
- set d_but$i [VtPushButton $densityMenu.d_but$i \
- -label [lindex $pb $i]]
- }
- incr i
- }
- set numDensityButtons $numButtons
- }
-
- VtSetValues $densityMenu -selectedWidget $d_but0
-
- }
-
- #
- # Start Program
- #
- set app [VtOpen optionMenu]
-
- set fn [VtStartForm $app.form -title "Option Menus"]
-
-
- set mediaMenu [VtOptionMenu $fn.mediaMenu -label "Media:" -callback mediaCB]
- set m_but0 [VtPushButton $mediaMenu.mbut0 -label floppy]
- set m_but1 [VtPushButton $mediaMenu.mbut1 -label tape]
- set m_but2 [VtPushButton $mediaMenu.mbut2 -label hardDisk]
- VtSetValues $mediaMenu -selectedWidget $m_but0
-
- set densityMenu [VtOptionMenu $fn.densityMenu -label "Density:"]
- set d_but0 [VtPushButton $densityMenu.d_but0 ]
- set d_but1 [VtPushButton $densityMenu.d_but1 ]
- set d_but2 [VtPushButton $densityMenu.d_but2 ]
- set numDensityButtons 3
-
- mediaCB {}
-
-
- set quit [VtPushButton $fn.quit -callback quitCB \
- -leftSide FORM \
- -rightSide FORM \
- -bottomSide FORM]
-
- VtShow $fn
- VtMainLoop
-
-